package tpalgo3.modelo.obstaculos;

import java.awt.Point;
import java.util.List;

import org.apache.log4j.Logger;

import tpalgo3.modelo.enemigos.Enemigo;
import tpalgo3.modelo.tablero.Camino;
import tpalgo3.util.CoordenadasUtil;

public class Arena extends Obstaculo {
	private static final Logger logger = Logger.getLogger(Arena.class);
	
	public static final int COSTO = 10;
	private static final int PORCENTAJE_VELOCIDAD = 50;
	
	public Arena(Point posicion, Camino camino) throws ConstructorObstaculoException {
		if (CoordenadasUtil.perteneceAlCamino(posicion, camino)){
			this.setPosicion(posicion);
		}
		else {
			throw new ConstructorObstaculoException("Error al crear ARENA, coordenada " + posicion.toString() + " no pertenece al camino.");
		}
	}
	
	@Override
	public int getCosto() {
		return COSTO;
	}

	@Override
	public void afectarEnemigo(List<Enemigo> enemigos) {
		Enemigo enemigoAAfectar = obtenerEnemigoAAfectar(enemigos);
		if (enemigoAAfectar != null) {
			enemigoAAfectar.reducirVelocidad(PORCENTAJE_VELOCIDAD);
			enemigoAAfectar.setAfectadoPorArena(true);
			logger.info("Soy " + enemigoAAfectar.getClass().getName() + " y me clave en " + this.getClass().getName() + ". Mi velocidad ahora es: " + enemigoAAfectar.getVelocidadActual());
		}
	}	
}